/**
 * Copyright phonemap.com
 *
 * Licensed under the phonemap.com License, Version 1.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.phonemap.com/licenses/LICENSE-1.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.avatar.entity;

import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

/**
 * The Class Profile.
 * @author Phu Le
 */
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class UserProfile {
	
	/** The user id. */
	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Long userId;
	
	/** The firstname. */
	@Persistent
	private String firstname;
	
	/** The lastname. */
	@Persistent
	private String lastname;
	
	/** The Gender. */
	@Persistent
	private String gender;
	
	/** The user image. */
	@Persistent
	private String userImage;
	
	/** The profile url. */
	@Persistent
	private String profileUrl;
	
	/** The city. */
	@Persistent
	private Long cityId;
	
	/** The interests. */
	@Persistent
	private String interests;
	
	/** The date of birth. */
	@Persistent
	private Date dateOfBirth;  
	
	/** The time zone. */
	@Persistent
	private String timeZone;
	
	/** The create date. */
	@Persistent
	private Date createDate;

	/**
	 * Instantiates a new profile.
	 */
	public UserProfile() {
		
	}

	/**
	 * Instantiates a new user profile.
	 *
	 * @param userId the user id
	 * @param firstname the firstname
	 * @param lastname the lastname
	 * @param gender the gender
	 * @param userImage the user image
	 * @param profileUrl the profile url
	 * @param cityId the city id
	 * @param interests the interests
	 * @param dateOfBirth the date of birth
	 * @param timeZone the time zone
	 * @param createDate the create date
	 */
	public UserProfile(Long userId, String firstname, String lastname, String gender, String userImage,
			String profileUrl, Long cityId, String interests, Date dateOfBirth, String timeZone, Date createDate) {
		this.userId = userId;
		this.firstname = firstname;
		this.lastname = lastname;
		this.gender = gender;
		this.userImage = userImage;
		this.profileUrl = profileUrl;
		this.cityId = cityId;
		this.interests = interests;
		this.dateOfBirth = dateOfBirth;
		this.timeZone = timeZone;
		this.createDate = createDate;
	}

	/**
	 * Gets the user id.
	 *
	 * @return the user id
	 */
	public final Long getUserId() {
		return this.userId;
	}

	/**
	 * Sets the user id.
	 *
	 * @param userId the new user id
	 */
	public final void setUserId(Long userId) {
		this.userId = userId;
	}

	/**
	 * Gets the firstname.
	 *
	 * @return the firstname
	 */
	public final String getFirstname() {
		return this.firstname;
	}

	/**
	 * Sets the firstname.
	 *
	 * @param firstname the new firstname
	 */
	public final void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	/**
	 * Gets the lastname.
	 *
	 * @return the lastname
	 */
	public final String getLastname() {
		return this.lastname;
	}

	/**
	 * Sets the lastname.
	 *
	 * @param lastname the new lastname
	 */
	public final void setLastname(String lastname) {
		this.lastname = lastname;
	}

	/**
	 * Gets the gender.
	 *
	 * @return the gender
	 */
	public final String getGender() {
		return this.gender;
	}

	/**
	 * Sets the gender.
	 *
	 * @param gender the new gender
	 */
	public final void setGender(String gender) {
		this.gender = gender;
	}

	/**
	 * Gets the user image.
	 *
	 * @return the user image
	 */
	public final String getUserImage() {
		return this.userImage;
	}

	/**
	 * Sets the user image.
	 *
	 * @param userImage the new user image
	 */
	public final void setUserImage(String userImage) {
		this.userImage = userImage;
	}

	/**
	 * Gets the profile url.
	 *
	 * @return the profile url
	 */
	public final String getProfileUrl() {
		return this.profileUrl;
	}

	/**
	 * Sets the profile url.
	 *
	 * @param profileUrl the new profile url
	 */
	public final void setProfileUrl(String profileUrl) {
		this.profileUrl = profileUrl;
	}

	/**
	 * Gets the city id.
	 *
	 * @return the city id
	 */
	public final Long getCityId() {
		return this.cityId;
	}

	/**
	 * Sets the city id.
	 *
	 * @param cityId the new city id
	 */
	public final void setCityId(Long cityId) {
		this.cityId = cityId;
	}

	/**
	 * Gets the interests.
	 *
	 * @return the interests
	 */
	public final String getInterests() {
		return this.interests;
	}

	/**
	 * Sets the interests.
	 *
	 * @param interests the new interests
	 */
	public final void setInterests(String interests) {
		this.interests = interests;
	}

	/**
	 * Gets the date of birth.
	 *
	 * @return the date of birth
	 */
	public final Date getDateOfBirth() {
		return this.dateOfBirth;
	}

	/**
	 * Sets the date of birth.
	 *
	 * @param dateOfBirth the new date of birth
	 */
	public final void setDateOfBirth(Date dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	/**
	 * Gets the time zone.
	 *
	 * @return the time zone
	 */
	public final String getTimeZone() {
		return this.timeZone;
	}

	/**
	 * Sets the time zone.
	 *
	 * @param timeZone the new time zone
	 */
	public final void setTimeZone(String timeZone) {
		this.timeZone = timeZone;
	}

	/**
	 * Gets the creates the date.
	 *
	 * @return the creates the date
	 */
	public final Date getCreateDate() {
		return this.createDate;
	}

	/**
	 * Sets the creates the date.
	 *
	 * @param createDate the new creates the date
	 */
	public final void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

}
